package com.kantboot.api.varcode.service;

import com.kantboot.api.varcode.domain.dto.ApiVarCodeDTO;
import com.kantboot.api.varcode.domain.dto.ApiVarCodeSearchDTO;
import com.kantboot.util.core.param.PageParam;
import com.kantboot.util.core.result.PageResult;

public interface IApiVarCodeService {

    /**
     * 生成验证码
     */
    String generateCode();


    /**
     * 发送验证码
     * @param dto 参数
     */
    void send(ApiVarCodeDTO dto);

    /**
     * 发送验证码（安全）
     * @param dto 参数
     */
    void sendSecurity(ApiVarCodeDTO dto);

    /**
     * 发送邮箱验证码
     * @param dto 参数
     */
    void sendEmail(ApiVarCodeDTO dto);

    /**
     * 发送短信验证码
     * @param dto 参数
     */
    void sendSms(ApiVarCodeDTO dto);

    /**
     * 校验验证码
     */
    Boolean check(ApiVarCodeDTO dto);

    PageResult getBodyData(PageParam<ApiVarCodeSearchDTO> pageParam);

}
